1. Field of the Invention
The present invention relates to processing image data in response to a data structure defining image processing, and in particular relates to processing large quantities of image data in response to a data structure.
2. Description of the Related Art
Systems for the processing of image data are known in which large quantities of digitised film or video data are processed in order to provide special effects. The image data consists of multiple image frames, and an output clip is generated by sequentially processing input frames from an input clip. Also, it is known to combine images from several image clips simultaneously, whereby one or several foreground clips are placed against a common background. This is a process known as compositing.
Historically, compositing, effects and other forms of image processing were often performed in several stages. A complex scene derived from multiple input clips would require intermediate clips to be generated. This results in the need for costly storage of the intermediate clips, and also creates considerable complexity in the administration of the various stages of processing. A major problem with this approach is that complex effects requiring intermediate clips are too expensive to permit creative experimentation.
This difficulty, in the context of digital image processing, has been solved by defining complex sequences of compositing, effects, and other types of image processing in a data structure called a process tree. A process tree typically has one or several inputs, and one or more outputs. intermediate processing nodes, and their interconnections, define process combinations of arbitrary complexity. The output clip is generated a frame at a time, with each frame being calculated according to the operation of process nodes and their interconnections in the process tree.
Whereas previously it would have been necessary to generate output clips in their entirety, a process taking possibly several hours or days, the process tree generates a single frame at a time, taking from less than a second to several minutes, depending on the complexity of effects defined by the process tree. The operator of such a system, often referred to as a digital artist, can tune or retouch the data structure used to create a scene or effect without having to render each intermediate clip of the tree. Once satisfied with the results, the entire output clip can be rendered to disk for eventual transfer to film or another medium.
The popularity of this approach, and the capabilities offered by such a system, have resulted in process trees of considerable complexity being used routinely. This results in an overall increase in the rendering time for each frame. This increase in processing time is tolerated, because the results from this arrangement are usually worth the wait. Alternatively, a faster computer can be used to reduce the time to render each frame. However, the amount of processing required for a complex processing tree is considerable, and limitations in computer architecture, as well as cost, provide a limit to the effectiveness of a brute force solution.